package com.pubinfo.passbook.engine.constants;

/**
 * 计算单元标识符
 * 工厂根据标识符来初始化各个计算单元
 *
 * @author zhouch
 * @date 2021/12/14 8:28
 */
public final class ComputeUnitSymbol {

    /**
     * 单向计算
     */
    public final static class Single {

        /**
         * 相加计算单元
         */
        public static final String ADD = "add";

        /**
         * 相减计算单元
         */
        public static final String MINUS = "minus";

        /**
         * 减数计算单元
         */
        public static final String BE_MINUS = "be-minus";

        /**
         * 相乘计算单元
         */
        public static final String MULTIPLY = "multiply";

        /**
         * 除计算单元
         */
        public static final String DIVIDE = "divide";

        /**
         * 归零
         */
        public static final String ZERO = "zero";

        /**
         * 强制赋值 (覆盖之前的计算结果)
         */
        public static final String ASSIGN = "assign";
    }


    /**
     * 逻辑类
     */
    public final static class Logic {

        /**
         * 大于
         */
        public static final String THAN = "than";

        /**
         * 大于 (双参数)
         */
        public static final String THAN_CUSTOM = "than-custom";

        /**
         * 大于等于
         */
        public static final String THAN_EQUAL = "than-equal";

        /**
         * 大于等于 (双参数)
         */
        public static final String THAN_EQUAL_CUSTOM = "than-equal-custom";

        /**
         * 小于
         */
        public static final String LESS = "less";

        /**
         * 小于 (双参数)
         */
        public static final String LESS_CUSTOM = "less-custom";

        /**
         * 小于等于
         */
        public static final String LESS_EQUAL = "less-equal";

        /**
         * 小于等于 (双参数)
         */
        public static final String LESS_EQUAL_CUSTOM = "less-equal-custom";

        /**
         * 等于
         */
        public static final String EQUAL = "equal";

        /**
         * 医药费类
         */
        public final static class Medicine {

            /**
             * 是否在职
             */
            public static final String JOB_WHETHER = "medicine-job-whether";

            /**
             * 是否退休
             */
            public static final String RETIRE_WHETHER = "medicine-retire-whether";

            /**
             * 是否内退
             */
            public static final String EARLY_RETIRE_WHETHER = "medicine-early-retire-whether";

            /**
             * 是否离休
             */
            public static final String OVER_WHETHER = "medicine-over-whether";

            /**
             * 是否是普通住院
             */
            public static final String NORMAL_HOSPITAL = "medicine-normal-hospital";

            /**
             * 是否是特殊病种或者特殊用户
             */
            public static final String SPECIAL_HOSPITAL = "medicine-special-hospital";

            /**
             * 是否特殊病种或者普通住院
             */
            public static final String SPECIAL_DISEASES_OR_HOSPITAL = "medicine-special-diseases-or-hospital";

            /**
             * 是否是特殊住院
             */
            public static final String SPECIAL_DISEASES = "medicine-special-diseases";

            /**
             * 是否是特殊用户
             */
            public static final String SPECIAL_USER = "medicine-special-user";

            /**
             * 是否门诊
             */
            public static final String OUTPATIENT = "medicine-outpatient";

            /**
             * 工龄大于 min 小于 max
             */
            public static final String WORK_AGE_BETWEEN = "medicine-work-age-between";

            /**
             * 工龄大于 min
             */
            public static final String WORK_AGE_THAN = "medicine-work-age-than";

            /**
             * 工龄小于 max
             */
            public static final String WORK_AGE_LESS = "medicine-work-age-less";

            /**
             * 年龄大于 min
             */
            public static final String AGE_THEN = "medicine-age-than";

            /**
             * 年龄小于 max
             */
            public static final String AGE_LESS = "medicine-age-less";

            /**
             * 年龄小于 max 并且 大于 min
             */
            public static final String AGE_BETWEEN = "medicine-age-between";

            /**
             * 是否在职，并且工龄大于 min 小于 max
             */
            public static final String JOB_AND_WORK_AGE_BETWEEN = "job-and-work-age-between";

            /**
             * 是否在职，并且工龄大于 min
             */
            public static final String JOB_AND_WORK_AGE_THAN = "job-and-work-age-than";

            /**
             * 是否在职，并且工龄小于 max
             */
            public static final String JOB_AND_WORK_AGE_LESS = "job-and-work-age-less";

            /**
             * 是否退休，并且工龄大于 min
             */
            public static final String RETIRE_AND_WORK_AGE_THAN = "retire-and-age-than";
        }

        public final static class PayInformation {

            /**
             * 竖版并且没有医保
             */
            public static final String VERTICAL_AND_NOT_INSURANCE = "vertical-and-not-insurance";


            /**
             * 超时
             */
            public static final String TIMEOUT = "timeout";

            /*
            是否是劳模
             */
            public static final String IS_LABOR = "is-labor";
        }
    }


    public final static class Hook {


        public final static class PayInformation {

            /**
             * 保存子单可报销金额
             */
            public static final String SAVE_REIMBURSABLE = "save-reimbursable";

        }
    }
}
